UNIX MAGAZINE 2001年12月号

キーフレーズ

UNIX MAGAZINE http:// システム ネットワーク 2001 Linux ring サーバー アドレス クライアント Web Tomcat www Windows IPv6 アプリケーション ページ 場合 ファイル ジョブ インターフェイス Java データ CPU コマンド 利用 ルータ RFC ノード 機能 インターネット SSH 設定 アクセス 表示 コネクション 検索エンジン TCP 本体価格 RAID できる 対応 .com () for プロトコル プログラム 検索 consume lnternet 可能 txt 処理 文字列 ポート マルチキャスト ソフトウェア Wiki 情報 Oscillator サービス ディスク LAN -3 必要 ssh インストール telnet servlet 接続 ホスト FTP 000 使っ localhost aist 管理 org リンク Base URL WWW usr Subject 実行 speaker RSIP 指定 メールサーバー オープンソース ローカル -1 ゲートウェイ 2000 Scope 構成 FreeBSD メモリ

目次

連載 / BSD をハックする一の リスト 5 static static static static static com-status-sched() void dkstat VOid cpustat void ifstat void memstat void loadave #define cursor(x,y) do{1cd-enq(Ox0c) ; - lcd-enq(x) ; lcd-enq(y) ; }whi1e(O) void com—status—sched ——P((void)) Struct com_softc *sc static int toggle; if (sc==NULL) return; if (lcd-deq() > = 0 ) { com—iflush(sc) ; first=l ; C om 1cd softc; lcd—flush() ; / * rewind ptr * / if(first ) { lcd—benq(lcdinit , first=0; com—status—init(sc) ; goto kickoff ; sizeof (lcdinit) ) ; cursor(O,0) ; cursor(7,0) ; cursor(O,1) ; cursor(O,2) ; cursor(O,3) ; cursor(19,3); loadave() ; memstat() ; ifstat() ; cpustat() ; dkstat() ; if ( ( toggle + + ) & 1 ) lcd—enq( ' lcd-putc(lcd—deq() ) ; ( 誌面の都合上、で折り返しています ) kickoff : 表示プログラム 1 秒ごとに呼び出される関数 com-status-sched() は、 今回はリスト 5 のようになります。 ます、前回の出力カ院了していなけオ L ば、シリアル入力 を空読みして初期化フラグ (first) をオンにします。 次に、出力バッフアをクリアします。 そして、初期化フラグがオンであれば、シリアルポート を匆月化して lcd に初期化データを送信します ( 送信バッ フアにネ川月化データ lcdinit を入れます ) 。 UNIX MAGAZINE 2001.12 あとは、 LCD のカーソルを 1 行目左端に動かしてロー ドアベレージを出力し、 7 カラム目からメモリの状態を出 力します。続いて、各行の知頁にカーソルを移動してネッ トワーク・インターフェイス、 CPU 、ディスク転送の状 いうよりは、棒か表示されたり消えたりするように見えま フのご利益があまり感しられません。棒かイ申ひ縮みすると ただし、ディスクに関しては変動か激しすぎて棒グラ ないなあ」と、 LCD を横目で見ています。 始めておいて、ほかの仕事をしながら「まだ make カ絲冬ら どがだいたい分かります。アプリケーションの make を しかし丘は、液品ディスプレイさえ見川ま負荷状態な リモートログインしてコマンドを叩く必要がありました。 出力を切り替えるか、ターミナル窓を開けて NetBSD に ています。そのため、 NetBSD 機の状態を知るには CRT 機を、コンソール切替器を使って 1 台の CRT に接続し 私は PC のほかにワークステーションなど数台の計算 かいい感しです。 に孑売して 2 カ月はど 24 時間運転していますが、なかな 今回紹介した液品表示器を、 NetBSD か稼動する PC 次回に説明します。 出力する 5 つの関数を書けは元成です。これらについては CPU 、ディスクのそれぞれの糸兤値を数値や棒グラフで あとは、ロードアベレージ、メモリ、ネットワーク、 おわりに れます。 出力してリターンします。 2 文字目以降は割込みで出力さ 最後に、出力バッフアの知頁の文字をシリアルポートに ータ生成は終ります。 そして、画面右下隅に、、 * " か空白を交互に出力してデ 態を出力します。 す。 99 ( さいとう・あきのり躑及大判

連載 / BSD をハックする一の リスト 4 LCD ネ化データ static u—char lcdinit ロ = { 0X09 , OxOa, 0X10 , 0X00 , 0x0e , Ox0e , 0xOe , 0x0e , OxOe , OxOe , OxOe , OxOe , OxOe , OxOe , OxOe , OxOe , OxOe , OxOe , Ox0e , 0xOe , 0X10 , 0X09 , 0X14 , 0X01 , 0X00 , Ox1F , 0X10 , 0X10 , 0x1F, 0X18 , 0X18 , Ox1F, Ox1c, Ox1c, Ox1F, Ox1e , Ox1e , Ox1F, Ox1f , 0x1f, 0x1f, 0X01 , 0X04 , OxOe , 0X00 , 0X00 , 0xOe , 0x0e , 0X00 , 0xOe , 0xOe, 0X00 , 0xOe , 0xOe , 0X00 , 0x0e , Ox0e , 0X00 , 0xOe , 0xOe , 0X00 , Ox0e , / * LCD size 20X4 * / 0X480 , 0X10 , 0X05 , 0X00 , 0X10 , 0X10 , 0X18 , 0X18 , 0x1c, 0x1c, 0x1e, 0x1e, 0x1f, Ox1f, 0X80 , 0X00 , Ox0e , Ox0e , 0x0e , OxOe , Ox0e , 0x0e , OxOe , Ox0e , OxOe , 0x0e , 0X10 , 0X00 , 0X10 , 0X10 , 0X18 , 0X18 , Ox1c, Ox1c, Ox1e, Ox1e, Ox1f , 0x1f , 0X05 , / * CG RAM ADDR O=char code 0 * / / * switch to DD RAM / * 5X7 dot bar * / / * 4X7 dot bar * / / * 3X7 dot bar * / / * 2X7 dot bar * / / * 1X7 dot bar * / / * 0X7 dot bar * / CLEAR SCREEN * / 3. LCD ュニットのアドレス空間を DDRAM に戻す。 (d)RS 入力を、、 1 " にする。 (c) アドレスカウンタ値十 0X80 をデータとして渡す。 (b)RS 入力を 0 にする。 CGRAM に切り替える。 (a)LCD ユニットのアドレス空間を DDRAM から 98 0 を使ってデータを出力するときには RS ビットを操作 ・ PIC はデータをそのまま LCD に渡すコマンド (0x0e) 出力する。 ると、 RSE ットを、 1 " にしたあと受け取ったデータを ・ PIC は 0X00 ~ 0X07 、 0x15—0xFF のデータを受け取 ピット 0 はアイドル時 1 、ビット 3 は 0 ・ RA ポートのうち意味のある出力ビットは 0 と 3 で、 トの値を変えてはならない。 ・ RA ポートは 8 ビットボートなので、 RA2 以、タ P ) ビッ トのビット 2 ) に接続されている。 ・ LCD ュニットの RS 入力は、 PIC の RA2 ()A ポー を突き合わせると、以下のことが分かります。 添付の回路図と PIC で動作しているプログラムのソース これを実現するためにはどうすればよいのでしようか。 しない。 ・ RB ポートは下位 4 ビットが LCD のデータの上位 4 るのは、 RS ピットか勝手にセットされるのを防ぐため ( > 0X15 ) を出力するのではなく、、 0x0e , 0X40 " としてい 設定するコマンド 0X40 を出力するときに、単純に 0X40 うデータをリスト 4 に示します。 CGRAM アドレスを LCD のネ月化とユーサー定義フォントの設定をおこな 必要。 操作もしてくれる。ただし、 RS ビットの値には注意が ムがビット入替えと 8 ピット→ 4 ビット出力 2 回の るほうが楽である。こちらを使えは、 PIC のプログラ 出力コマンド (0x0E に続いてデータバイト ) を利用す コマンド ( 0X00 ~ 0X07 、 0x15—0xFF) か、 1 ノヾイト PIC の RB ポート操作コマンドは使わず、データ出力 おり、 PIC のソースプログラムが正しい ) 。このため、 のビット入替えが必要になる国属の回路図は間違って 7 ではなく ) 5 、 4 、 7 、 6 に接続されているので、データ だし、ビット 0 、 1 、 2 、 3 がそれぞれビット ( 4 、 5 、 6 、 つ 2 回に分けて LCD ユニットに渡す必要がある。た ピットにつながっていて、 8 ビットデータは 4 ピットす です。 UNIX MAGAZINE 2001.12

連載 / BSD をハックする一の るアイドル状態なのか、アイドル状態でカーネルがハング アップしたのかの区別がっきません。 そこで、画面の開いた場所 ( 右ード隅 ) に * ( アスタリ スク ) を 1 秒澗隔で点滅させることにしました。 LCD 制御 前回は 1 行のデータと改行コードをそのまま流すだけで したが、今回は画面のカーソル移動とユーサー定義フォン ドノ ユーサー定義フォント クロ定義で言当できます ( リスト 5 参照 ) 。 マンドに続いて x 座標と y 座標を出力します。 Data RAM) のアドレスポインタの値設定 ) は、 LCD 画面上でのカーソル移動 (DDRAM (DispIay カーソル移動 ト機能が必要です。 これはマ 0x0C コ tor RAM) の望みの文字 ( 今回はコード 0 からなので 1. アドレスカウンタを、 CGRAM (Character Genera- 具イ勺な手順は以下のようになります。 があります。 タブタをバイバスして直接 LCD ュニットを操作する必要 この機能をサポートしていません。そのため、液品表示ア ンロード機能がありますが、シリアル液品表示アタフ。タは 今回使用している LCD ュニットにはフォント・ダウ から 5 に割り当てることにしました。 にするために、 0 / 5 ~ 5 / 5 幅の四角 ( ■ ) を文字コード 0 ペース ( 0X20 ) を使えはよいのですが、プログラムを簡略 の ( 1 文字のなかで左詰めの ) 四角が必要です。空白はス そのためには、 1 x 7 ドット ~ 5 x 7 ドットの 5 不頁 細かい棒グラフを表示しようと考えました。 定義フォントを使って、 1 文字をさらに 1 / 5 に区切った と、 10 段階の分解能しかありません。そこで、ユーザー 液品の 10 文字ぶんの場所を使って棒グラフを表示する UNIX MAGAZINE 2001.12 ト ) 回出力する。 2. グリフデータを文字数 x 8 バイト ( 1 文字は 5 x 8 (c)RS 入力を 1 にする。 から出力 ) 。 (b) アドレスカウンタ値をデータとして渡す ()B ポート (a)RS 入力を 0 にする。 0 ) にセットする。 SC 翡 好評発売中 ! インターネットの 起源 ・ Katie Hafner 、 Matthew Lyon 著 ・加地永都子、道田豪訳 ・ A5 判、 336 ページ •ISBN 4-7561-3479-3 ・本体 2 , 500 円 + 税 誤った“常識”を覆し、創設に携わった人びとの肉声を あますところなく伝える貴重な証言集 目次から 即断即決で 100 万ドル / 大聖堂を建てたのは誰か / 第 3 の 大学 / プログラムと格闘する日々 / トウルート宛必着 / ハッ キングと喧噪と / 電子メール / 手にしたロケット 参考文献、索引 Java プログラミング・ノート 国際化と 日本語処理 ・風間一洋著 ・ A5 判、 312 ページ ・ ISBN 4-7561-3481-5 ・本体 3 , 000 円十税 Java による日本語処理、さらには国際化プログラミング に必須の知識を数多くのサンプル・プログラムを示し ながら平易に解説する。真の意味での "Write Once, RunAnywhere ”を目指すプログラマーに最適の 1 冊。 目次から Java はどんな言語か / 国際化と地域イヒ / Unicode / ロケー ル / 工ンコーディング / タイムゾーン / リソースパンドル / フォ ーマット出力と解析 / 文字列の比較 / テキストの境界解析 / インブットメソッド / 文字の表示 付録 : Unicode プロック / ロケール一覧 / 工ンコーディング名 一覧 / タイムゾーン D 一覧 / ユーロ通貨記号への対応 株式会社アスキー Where Wizards 5 ね y up Late The Origins of The lnternet CAFE BABE 〒 1 5 1 ー 8024 東京都渋谷区代々木 4 ー 33 ー ] O 出版営業部 電話 (03) 5351 ー 8194 97